package com.zenithmind.task.pojo.dto;

import lombok.Data;

import jakarta.validation.constraints.*;
import java.util.List;

/**
 * 任务评论DTO类
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
@Data
public class TaskCommentDTO {

    /**
     * 评论ID（更新时需要）
     */
    private String id;

    /**
     * 任务ID
     */
    @NotBlank(message = "任务ID不能为空")
    private String taskId;

    /**
     * 父评论ID（回复评论时需要）
     */
    private String parentId;

    /**
     * 评论内容
     */
    @NotBlank(message = "评论内容不能为空")
    @Size(max = 2000, message = "评论内容长度不能超过2000个字符")
    private String content;

    /**
     * 评论类型：1-普通评论，2-状态变更，3-分配变更，4-进度更新，5-系统日志
     */
    @Min(value = 1, message = "评论类型值无效")
    @Max(value = 5, message = "评论类型值无效")
    private Integer commentType;

    /**
     * 被回复人ID
     */
    private String replyToId;

    /**
     * 提及的用户ID列表
     */
    private List<String> mentionedUserIds;

    /**
     * 附件ID列表
     */
    private List<String> attachmentIds;

    /**
     * 是否置顶
     */
    private Boolean isPinned;
}
